【レポート】企業内 Windows Server アプリケーション移行手法とツール (AWS-06) #AWSSummit
いわさです。
AWS Summit Onlineで行われた、「企業内 Windows Server アプリケーション移行手法とツール (AWS-06)」セッションのレポートです。
この記事では、要点・見どころ・ポイントについてまとめてみました。
セッション概要
概要
業務 Web アプリケーションで頻繁に利用される .NET プラットフォームの AWS 移行と最新化手法、AWS の支援ツールやサービスについてご紹介します。
スピーカー
- AWS 技術統括本部 ソリューションアーキテクト 畠 泰三 氏
セッションレベル
- Level 200: 初級者向け
レポート
企業アプリケーションのクラウド移行
昨今のエンタープライズアプリケーションのクラウド移行の必要性について解説されています。
- クラウド移行によって期待されること
- アプリケーションの実験がしやすくなり、開発や改善のスピードを向上できる。それによりビジネスで顧客体験に繋がるイノベーションが起こりやすくなり売上の向上につながることが期待できる
- マネージドサービスを活用し、機会損失や過剰在庫の抑制とコスト最適化が可能になる
- セキュリティ標準やコンプライアンス認定を取得しており、セキュリティコンプライアンスを向上させることができる
- 企業アプリケーションのクラウド移行の現状
- オンプレミスにロックされており、どのように移行したら良いのか悩むケースが多い
しかし、実際には様々な理由で移行は簡単ではないと分析されています。
- レガシーアプリケーションが直面している課題
- 拡張性の欠如
- 技術的負債
- ライセンス費
- 古いソフトウェアによるセキュリティ及びコンプライアンスリスク
- イノベーションの加速や高速な開発へのプレッシャー
- 求められるスキルの変化
そこで、このセッションでは以下をターゲットに移行シナリオを解説しています。
- 移行戦略(7R)を意識する
- リロケート
- リホスト
- リプラットフォーム
- リパーチェス
- リファクタリング
- リテイン
- リタイア
- エンタープライズアプリケーションでのターゲット
- .NET Frameworkアプリケーション
- SQL Server
.NETアプリケーションの移行シナリオ
.NETアプリケーション特有の、クラウドへの移行シナリオ・考え方を解説しています。
- .NET Framework 4.8は最後のメジャーバージョン。今後の新しい機能は.NET Core。
- 既存のアプリケーションをそのまま利用する場合は、.NET Frameworkを使い続けても良い
- 新しい機能を使いたい場合は.NET Coreベースへの移行が必要
- .NETをAWSで実行する場合のホスティング
- 仮想サーバー
- 最も管理の自由度が高い
- コンテナ
- 自由度と抽象化度合いを両立できる
- 高速に起動できるので、デプロイやスケーリングできる
- サーバーレス
- 最大で15分以内に処理が完了するように、特性にあわせたコーディングが必要
- 標準ランタイムとしては.NET Coreが利用できる
- 仮想サーバー
ここでは、ASP.NETアプリケーションを例に、移行戦略ごとのメリット・デメリットを紹介しています
- ASP.NET アプリケーションの場合の移行戦略(7R)
- 単独の戦略ではなく複数の戦略を組み合わせることも有効
- Rehost
- メリット
- .NET Frameworkアプリケーションをそのまま移行できる
- オートスケーリングなどクラウドの機能を活用できる
- デメリット
- .NET Frameworkを使い続けるため、今後最近機能が利用できなくなる可能性がある
- メリット
- Replatform
- メリット
- インフラのマネージド化によってOSに対するパッチ適用などの運用作業を削減できる
- 単一サーバー上に異なるバージョンの.NET FrameworkやIISを稼働させることができる
- CI/CDの実現が容易となる
- .NET Frameworkを使い続けるため、今後最近機能が利用できなくなる可能性がある
- デメリット
- コンテナ化やサーバーレス化に伴い多少のコード変更が必要
- メリット
- Refactor
- メリット
- .NETの最新機能を利用できる
- Linuxへ移行することでライセンス費用などを削減できる
- デメリット
- .NET Coreへのコードの変更が必要
- メリット
- Refactor + Replatform
- メリット
- マネージド・サービスをフル活用し、継続的刷新サイクルへ
- デメリット
- コードの変更が必要
- メリット
ここでは、ASP.NETアプリケーションの移行先を決める前に必要な確認事項に触れています。
- ASP.NET アプリケーションを移行する流れ
- サブフレームワークを確認する
- ASP.NETなのかASP.NET Coreなのか
- MVCなのか、SignalRなのか、など
- サブフレームワークによって選択できるマイグレーション先が異なる
- EKS on Fargate は Windowsコンテナ非対応のため ASP.NET アプリは不可
- Lambda は .NET Framework 非対応のため ASP.NET アプリは不可
- SignalR は 接続先ノードが変わる可能性のあるECS, EKS, Lambdaは不可
- セッション内では対応表が紹介されている
- サブフレームワークを確認する
AWSが提供するモダナイゼーションツール・サービス
ここではAWSからモダナイザーションを支援するツールやサービスを、.NET アプリケーションと SQL Server に活用できるものを紹介しています。
- アプリケーション
- AWS App2Container
- .NET 及び Java アプリケーションのソースコードからコンテナイメージ等を自動生成
- Porting Assistant for .NET
- .NET Framework から .NET Core への移植時の互換性調査と、単純置換可能な部分のソースコード変換
- AWS Microservice Extractor for .NET
- .NETアプリケーションのマイクロサービスへのリファクタを支援
- ソースコードとランタイムメトリクスを分析し、アプリケーションとその依存関係を視覚化
- AWS App2Container
- データベース
- AWS Database Migration Service
- 高速かつ安全にデータベースをマイグレーション
- SQL Server から Aurora や Redshift へのリプラットフォームやリホストに活用
- AWS Schema Convertion Tool
- 手作業の最小化
- SQL Serverのスキーマをターゲットにし、コンバートやアセスメントレポートを作成
- Replatforming Assistant
- Windowsライセンス費用の削減
- Windows から Linux への SQL Server リプラットフォームを自動化
- Babelfish for Aurora PostgreSQL
- SQL Server から Aurora PostgreSQL への移行リスク・工数・コストを削減
- SQL Server 向けのアプリケーションを最小限のコード変更で Aurora PostgreSQL で稼働させることができる
- AWS Database Migration Service
まとめ
現在 Windows 環境で .NET Framework ワークロードを利用している開発者の方で、クラウドへの移行を検討されている方、移行したいが方法がわからない方におすすめのセッションでした。
セッション内では移行の必要性と、サブフレームワークごとの移行先、そして移行を支援するためのツールを知ることが出来ます。
移行の実際の方法やノウハウも必要になるますが、概念や手法をまず知るために最適なセッションだと思いました。
移行ツールについてはDevelopersIOでも取り上げていますので、参考にして頂けますと幸いです。
- App2Containerを使ってECS on Fargate環境へWindowsアプリケーションをデプロイする | DevelopersIO
- AWSから提供されている Porting Assistant for .NETを使って.NET Frameworkを.NET Coreへ移植する | DevelopersIO
- モノリシックなASP.NETアプリケーションのモダナイゼーションを支援する AWS Microservice Extractor for .NETを使ってみた #reinvent | DevelopersIO
- DMSを使ったデータベース移行を試してみた | DevelopersIO
- Babelfish for Aurora PostgreSQLがGAになったのでためす | DevelopersIO